//import org.neo4j.graphdb.*;
//import org.neo4j.graphdb.factory.GraphDatabaseFactory;
//
//import java.io.File;
//
//public class neo4jTest {
//
//    //创建 节点的 标签 枚举
//    public enum MyLabels implements Label {
//        Person
//    }
//
//    //全局只创建一个GraphDatabaseService实例
//    GraphDatabaseService graphDb;
//
//    Node firstNode;
//    Node secondNode;
//
//    //创建file 指明我们想要操作的neo4j数据库的数据文件的路径
//    private static final File databaseDirectory = new File("C:\\cyb\\neo4j-database");
//
//    public static void main(String[] args) {
//        neo4jTest hello = new neo4jTest();
//        hello.createDb();
//        hello.shutDown();
//    }
//
//    void createDb() {
//        System.out.println( "打开数据库 ..." );
//        //创建graphDb实例， 参数是我们想要操作的neo4j数据库的数据文件的路径, 以打开一个数据库
//        graphDb = new GraphDatabaseFactory().newEmbeddedDatabase(databaseDirectory);
//
//        //创建事务
//        try ( Transaction tx = graphDb.beginTx() ) {
//
//            firstNode = graphDb.createNode();
//            firstNode.setProperty("message", "Hello, ");
//            firstNode.addLabel(MyLabels.Person);
//
//            secondNode = graphDb.createNode();
//            secondNode.setProperty("message", "World!");
//
//
//            //提交事务
//            tx.success();
//        }
//
//
//    }
//
//    //查询数据
//    void searchData() {
//        //创建graphDb实例， 参数是我们想要操作的neo4j数据库的数据文件的路径, 以打开一个数据库
//        graphDb = new GraphDatabaseFactory().newEmbeddedDatabase( databaseDirectory );
//
//        try ( Transaction tx = graphDb.beginTx())
//        {
//            //查询带有Person标签的节点集合
//            ResourceIterator<Node> persions =graphDb.findNodes(MyLabels.Person);
//
//            //查询带有Person标签 message属性为hello, 的节点集合
//            //Map<String, Object> propertyValues = new HashMap<String, Object> ();
//            //propertyValues.put("message", "hello,");
//            //ResourceIterator<Node> persions=graphDb.findNodes(MyLabels.Person, propertyValues);
//
//            System.out.println(persions);
//            tx.success();
//        }
//
//    }
//
//    void shutDown()
//    {
//        System.out.println( "关闭数据库 ..." );
//        // 关闭数据库
//        graphDb.shutdown();
//    }
//
//    private static void registerShutdownHook( final GraphDatabaseService graphDb )
//    {
//        // 用来确保数据库正确关闭的 一个回调方法
//        Runtime.getRuntime().addShutdownHook( new Thread()
//        {
//            @Override
//            public void run()
//            {
//                graphDb.shutdown();
//            }
//        } );
//    }
//}